/**
 * точка выбрана на графике
 */
var isPointSelectInGraph;
/**
 * координаты выбранной точки
 */
var pointX, pointY;
/**
 * координаты центра графика
 */
var centerClientX = 118, centerClientY = 320;
/**
 * максимальные значения X и Y
 */
var maxClientX = 100, maxClientY = 100;
/**
 * значение r
 */
var clientR = 80;
/**
 * выбранное значение R
 */
function getR() {
    var r = r_value();
    return r.valid ? r.value : null;
}
/**
 * нажатие на график
 */
function imageClickHandler(e){
    isPointSelectInGraph = false;
    var r = getR();
    if (r) {
        var dClientX = e.clientX - centerClientX;
        var dClientY = e.clientY - centerClientY;
        if (Math.abs(dClientX) <= maxClientX && Math.abs(dClientY) <= maxClientY) {
            pointX = Math.round(dClientX / clientR * r * 10.0) / 10.0;
            pointY = Math.round(- dClientY / clientR * r * 10.0) / 10.0;
            isPointSelectInGraph = true;
            pointValueEl.innerHTML = "("+pointX+", "+pointY+")";
        }
    }
    else {
        alert ("Выберете значение R перед выбором точки");
    }
}
/**
 * область для вывода информации о выбранной точке
 */
var pointValueEl;
/**
 * сброс выбранной точки
 */
function resetSelectedPoint() {
    isPointSelectInGraph = false;
    pointValueEl.innerHTML = "Точка не выбрана";
}
/**
 * начало выполнения
 */
function bodyReady() {
    pointValueEl = getById("selectedPointValue");
    getByClass('vargr').item(0).onclick = imageClickHandler;
    resetSelectedPoint();
}
/**
 * отправка формы
 */
function sendForm() {
    var rval = r_value();
    var msg = [];
    if (! isPointSelectInGraph) {
        var xval = x_value();
        var yval = y_value();
        if ( ! xval.valid)
            msg.push(xval.msg);
        if ( ! yval.valid)
            msg.push(yval.msg);
        if ( ! rval.valid)
            msg.push(rval.msg);
    }
    var validContainer = getByClass('valid').item(0);
	if (msg.length > 0) {
		validContainer.innerHTML = "";
		msg.forEach(function(message){
			validContainer.innerHTML += message + "<br />";
		});
		validContainer.style.color = "red";
	}
	else {
        var xvalue = isPointSelectInGraph ? pointX : xval.value;
        var yvalue = isPointSelectInGraph ? pointY : yval.value;
		validContainer.innerHTML = "Данные введены верно";
		validContainer.style.color = "blue";
		ajax("checkPoint.jsp", "POST", {
			params: {
				x: xvalue,
				y: yvalue,
				r: rval.value
			},
			success: function (response) {
				getByClass('response').item(0).innerHTML = response.str;
			}
		});
    }
}